ssh-keygen -t rsa
ssh-copy-id -i id_rsa.pub <login>@core.cluster.france-bioinformatique.fr
ssh <login>@core.cluster.france-bioinformatique.fr
Vous pouvez votre paire de clé depuis plusieurs terminaux mais la clé privée est extrêmement confidentielle et il faut être très vigilent aux fuites et pertes.
Notez la premiere ligne avec l’adresse pour récupérer le dépôt avec l’option SSH.
Il est aussi possible de faire cela en localement avec git init mais dans ce cas il faudra ensuite lié ce dépôt à un remote distant si l’on le souhaite.
mkdir testRepo
cd testRepo
git init
# Initialized empty Git repository in /Users/vloux/tmp/testRepo/.git/
git clone git@github.com:... # git clone git@github.com:CedricMidoux/test.git
Le dépôt est vide et disponible localement.
cd test/
ls -la
# total 0
# drwxrwxrwx 1 cmidoux cmidoux 4096 Mar 5 17:21 .
# drwxrwxrwx 1 cmidoux cmidoux 4096 Mar 5 17:21 ..
# drwxrwxrwx 1 cmidoux cmidoux 4096 Mar 5 17:21 .git
On ajoute un premier fichier et on utilise git status pour connaitre l’état de notre dépôt.
echo 'my first line' > firstFile
git status
# On branch master
#
# No commits yet
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
# firstFile
#
# nothing added to commit but untracked files present (use "git add" to track)
Le nouveau fichier n’est pas suivi. Il faut l’ajouter avec git add puis lorsque toutes les modifications sont suivies, on peut commit avec git commit.
git add firstFile
git status
# On branch master
#
# No commits yet
#
# Changes to be committed:
# (use "git rm --cached <file>..." to unstage)
# new file: firstFile
git commit -m "Premier commit"
# [master (root-commit) e8b7769] Premier commit
# 1 file changed, 1 insertion(+)
# create mode 100644 firstFile
git status
# On branch master
# nothing to commit, working tree clean
echo 'seconde modif' >> firstFile
git status
# On branch master
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git restore <file>..." to discard changes in working directory)
# modified: firstFile
#
#no changes added to commit (use "git add" and/or "git commit -a")
git diff
# diff --git a/firstFile b/firstFile
# index b1a9f66..9cc14c7 100644
# --- a/firstFile
# +++ b/firstFile
# @@ -1 +1,2 @@
# my first line
# +seconde modif
git add firstFile
git commit -m "ajout de la deuxième ligne"
# [master ddcd769] ajout de la deuxième ligne
# 1 file changed, 1 insertion(+)
La commande git push pousse les modifications de la branche master (la branche par défaut locale) sur la branche origin (le nom de la branche distante).
git push origin master #`git push` est suffisant par défaut
# Enumerating objects: 6, done.
# Counting objects: 100% (6/6), done.
# Delta compression using up to 4 threads
# Compressing objects: 100% (2/2), done.
# Writing objects: 100% (6/6), 487 bytes | 10.00 KiB/s, done.
# Total 6 (delta 0), reused 0 (delta 0)
# To github.com:CedricMidoux/test.git
# * [new branch] master -> master
On peut lister les différents dépôts distants avec
git remote -v
# origin git@github.com:CedricMidoux/test.git (fetch)
# origin git@github.com:CedricMidoux/test.git (push)
README.md (avec markdown)git fetch
# remote: Enumerating objects: 10, done.
# remote: Counting objects: 100% (10/10), done.
# remote: Compressing objects: 100% (8/8), done.
# remote: Total 9 (delta 0), reused 0 (delta 0), pack-reused 0
# Unpacking objects: 100% (9/9), 2.10 KiB | 7.00 KiB/s, done.
# From github.com:CedricMidoux/test
# 110b5a5..4606251 master -> origin/master
git merge
# Updating 110b5a5..4606251
# Fast-forward
# README.md | 3 +++
# 1 file changed, 3 insertions(+)
# create mode 100644 README.md
cat README.md
# # test
#
# Ceci est le `README`. On peut facilement l'éditer en ligne avec du *Markdown* et commiter chaque changement ...
équivalent à :
git pull # fetch¨+ merge
On peut lister les commit avec git log.
git log
# commit 4606251a3f1a63874803c1a2397072b7ac60ebf1 (HEAD -> master, origin/master)
# Author: CedricMidoux <34483895+CedricMidoux@users.noreply.github.com>
# Date: Mon Mar 8 11:30:27 2021 +0100
#
# Update README.md
#
# ...
Pour chaque commit on a un identifiant (SHA), l’auteur, la date et le commentaire (d’où l’interet de correctement nommer ses commits)
On peut comparer deux commits différents (en précisant ou non le fichier a comparer). Si on précise qu’un commit, par défaut on compare à HEAD.
git diff [CommitNumber] [CommitNumber] [File]
git diff 26bce3 # = git diff 26bce3 HEAD
# diff --git a/README.md b/README.md
# index 3bfeb78..4e55303 100644
# --- a/README.md
# +++ b/README.md
# @@ -1,3 +1,3 @@
# # test
#
# -Ceci est le README. On peut facilement l'éditer en ligne
# +Ceci est le `README`. On peut facilement l'éditer en ligne avec du *Markdown* et commiter chaque changement ...
git diff 110b5a 1fcc15 firstFile
# diff --git a/firstFile b/firstFile
# index 9cc14c7..b1a9f66 100644
# --- a/firstFile
# +++ b/firstFile
# @@ -1,2 +1 @@
# my first line
# -seconde modif
git@github.com: ...)Dans ce document on a :
Grâce à l’onglet git de Rstudio, vous pouvez suivre l’état des fichiers, commit, diff, push/pull, …
Chaque chunk peut être exécuté individuellement grâce à la flèche verte.
Les options associées à chaque chunks sont disponible avec la roue crantée.
knitr::kable(head(iris)) pour visualiser un tableplot(cars) pour un plotmain (ou master suivant votre configuration)Votre rapport est disponible, versionné et partageable !
Suivant l’interlocuteur, partagez le .Rmd ou le .html
A work by Migale Bioinformatics Facility
https://migale.inrae.fr
Our two affiliations to cite us:
Université Paris-Saclay, INRAE, MaIAGE, 78350, Jouy-en-Josas, France
Université Paris-Saclay, INRAE, BioinfOmics, MIGALE bioinformatics facility, 78350, Jouy-en-Josas, France